<?php

class SiteController extends BaseController
{
	public function actions()
	{
		return array(
			'captcha'=>array(
                'class'=>'CCaptchaAction',
                'width'=>'120',
                'height'=>'50',
                'maxLength' => '5',
                'minLength' =>'3',
                'backColor'=>0xFFFFFF,
            )
		);
	}

	public function actionIndex()
	{
		$this->render('index');
	}

	public function actionLogin()
	{
		if (!Yii::app()->user->isGuest)
		{
			$this->redirect(Yii::app()->user->url);
		}

		$user = new User();
		if(Yii::app()->request->isPostRequest)
		{
			$user->attributes = $_POST['User'];
			if($user->validate() && $user->login())
			{
				$this->redirect(Yii::app()->user->url);
			}
		}
		$this->render('login', array('model' => $user));		
	}

    public function actionLogout()
    {
    	Yii::app()->user->logout();
		$this->redirect(Yii::app()->homeUrl);
    }	

	public function actionLoginzaLogin()
	{
	    //проверяем, пришел ли token
	
	    if (isset($_POST['token'])) 
	    {
	        $loginza = new LoginzaModel();
	        $loginza->setAttributes($_POST);
	        $loginza->getAuthData();
	        
	        if ($loginza->validate() && $loginza->login()) 
	        {
	            $this->redirect(Yii::app()->user->url);
	        }
	        else 
	        {
	        	echo 'нет';
	            //сообщение об ошибке
	           // $this->render('loginzaerror');
	        }
	    }
	    else
	    {
	        //если этот метод вызван напрямую (без указания token)
	        $this->redirect(Yii::app()->homeUrl, true);
	    }
	}
	
	/* напомининае пароля @[fan-cpp] */
	public function actionForgotPassword()
	{
		if (isset(Yii::app()->user->url))
		{
			throw new CHttpException(404, 'Указанная страница не найдена');
		}
		
		if (isset($_POST['ForgotPassword']))
		{
			$email = $_POST['ForgotPassword']['email'];
			
			$user = User::model()->find('email =:email AND state =:state',array(':email' => $email, ':state' => 1));
			
			if ($user != null)
			{
				$newPass = PasswordHelper::generatePassword(10);
				$user->pass = PasswordHelper::hashPassword($newPass);
				$user->save(false);
				
				$mailRes = Mailer::send(array(
					'from'		=> Yii::app()->params['adminEmail'],
					'to'		=> $user->email,
					'layout'	=> 'common',
					'view'		=> 'forgot_password',
					'type'		=> 'text/html',
			
					'username'	=> $user->email,
					'new_pass'	=> $newPass
				));
				
				if ($mailRes)
				{
					$this->render('forgot_password_sended');
					Yii::app()->end();
				}
				else
				{
					/* Действия если не удалось отправить письмо на почту */
				}
			}
			else
			{
				$errors[] = 'Пользователь с указанным Email не существует или временно не активен';
				
				$this->render('forgot_password', array('errors' => $errors));
				Yii::app()->end();
			}
		}
		$this->render('forgot_password');
	}

	public function actionError()
	{
		if($error = Yii::app()->errorHandler->error)
		{
			if(Yii::app()->request->isAjaxRequest)
			{
				echo $error['message'];
			}
			else
			{
				$this->render('error', $error);
			}
		}
	}
}